package cn.yunyichina.provider.clinic.vo;

import cn.yunyichina.provider.framework.annotation.validate.AnnotationValidable;
import cn.yunyichina.provider.framework.annotation.validate.ValidateDigit;
import cn.yunyichina.provider.framework.annotation.validate.ValidateInt;
import cn.yunyichina.provider.framework.annotation.validate.ValidateNotNullAndNotEmpty;
import cn.yunyichina.provider.framework.annotation.validate.ValidatePattern;
import cn.yunyichina.provider.framework.annotation.validate.ValidateSize;
import cn.yunyichina.provider.framework.annotation.validate.ValidateStringIn;

public class AckPayOrderOutVoRequest implements AnnotationValidable {

    /* pay_amount */
    @ValidateNotNullAndNotEmpty
    @ValidateInt
    @ValidateSize(minSize = "0", maxSize = "9")
    private Integer payAmount;

    public void setPayAmount(Integer payAmount) {
        this.payAmount = payAmount;
    }

    public Integer getPayAmount() {
        return payAmount;
    }

    /* ps_ordnum */
    @ValidateNotNullAndNotEmpty
    @ValidateSize(minSize = "0", maxSize = "50")
    private String outOrderNo;

    public void setOutOrderNo(String outOrderNo) {
        this.outOrderNo = outOrderNo;
    }

    public String getOutOrderNo() {
        return outOrderNo;
    }

    /* 第三方支付机构交易流水号(用于对帐) */
    @ValidateSize(minSize = "0", maxSize = "50")
    private String paymentDealId;

    public void setPaymentDealId(String paymentDealId) {
        this.paymentDealId = paymentDealId;
    }

    public String getPaymentDealId() {
        return paymentDealId;
    }

    /* 5：支付宝服务窗支付（含医保） */
    @ValidateNotNullAndNotEmpty
    @ValidateSize(minSize = "0", maxSize = "2")
    private Integer payMode;

    public void setPayMode(Integer payMode) {
        this.payMode = payMode;
    }

    public Integer getPayMode() {
        return payMode;
    }

    /* 支付时间 yyyy-MM-dd HH:mm:ss */
    @ValidateNotNullAndNotEmpty
    @ValidatePattern(pattern = "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}")
    private String payTime;

    public void setPayTime(String payTime) {
        this.payTime = payTime;
    }

    public String getPayTime() {
        return payTime;
    }

    /* 用户Id: 支付宝alipayUserId 微信 openId */
    @ValidateNotNullAndNotEmpty
    @ValidateSize(minSize = "0", maxSize = "50")
    private String userId;

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserId() {
        return userId;
    }

    /* 云医通订单号 */
    @ValidateNotNullAndNotEmpty
    @ValidateSize(minSize = "0", maxSize = "50")
    private String yytOrderNo;

    public void setYytOrderNo(String yytOrderNo) {
        this.yytOrderNo = yytOrderNo;
    }

    public String getYytOrderNo() {
        return yytOrderNo;
    }

    /* 收款人标识 */
    @ValidateNotNullAndNotEmpty
    @ValidateSize(minSize = "0", maxSize = "50")
    private String payeeAppId;

    public String getPayeeAppId() {
        return payeeAppId;
    }

    public void setPayeeAppId(String payeeAppId) {
        this.payeeAppId = payeeAppId;
    }

    @ValidateSize(minSize = "0", maxSize = "50")
    private String hospitalCode;

    public String getHospitalCode() {
        return hospitalCode;
    }

    public void setHospitalCode(String hospitalCode) {
        this.hospitalCode = hospitalCode;
    }

    private String orgId;

    public String getOrgId() {
        return orgId;
    }

    public void setOrgId(String orgId) {
        this.orgId = orgId;
    }

    private String openId;

    public void setOpenId(String openId) {
        this.openId = openId;
    }

    public String getOpenId() {
        return openId;
    }

    /* 0-未知 1-支付宝医保支付渠道 2-微信医保支付渠道 3-银联刷医保卡 4-HIS医保结算 */
    private Short insuranceMode;

    public void setInsuranceMode(Short insuranceMode) {
        this.insuranceMode = insuranceMode;
    }

    public Short getInsuranceMode() {
        return insuranceMode;
    }

    private Integer exPayMode;

    public Integer getExPayMode() {
        return exPayMode;
    }

    public void setExPayMode(Integer exPayMode) {
        this.exPayMode = exPayMode;
    }

    /*
         * null -- 海鹚
         * 1 -- 智慧医院
         * 2 -- 云医宝
         */
    private Integer isFromInner;

    public Integer getIsFromInner() {
        return isFromInner;
    }

    public void setIsFromInner(Integer isFromInner) {
        this.isFromInner = isFromInner;
    }

}